from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 查询当前参数是否是int类型
from SaaSDevelTool.data_operation import is_number
# 获取数据库连接
from SaaSDevelTool.data_mysql_data import db
# 导入解析用户信息函数
from SaaSDevelTool.data_user_func import user
# 获取当前时间
from SaaSDevelTool.data_datetime_func import get_datatime

"""
用户权限禁用
"""


class SaaSDevelUserRbacDelete(View):
    @error_message_detection
    def post(self, request):
        # 获取用户编号
        user_id = request.POST.get("user_id")
        # 获取状态
        api_status = request.POST.get("api_status")

        # 判断用户编号
        if not is_number(user_id):
            return create_response(code=400, msg="请传入正确的用户编号。")

        # 解析用户信息
        user_message = user.get_user(request)

        # 判断类型
        if api_status == "open":
            # 拼接语句进行开启
            delete_base_info_user_table_sql = """
                UPDATE 
                    db_center_rbac.base_info_user_table
                SET 
                    user_status = 0,
                    update_user = {},
                    update_time = '{}'
                WHERE
                    user_id = {}
                ;""".format(user_message['user_id'], get_datatime(), user_id)
            # 执行语句
            db.update(delete_base_info_user_table_sql)
            # 返回响应
            return create_response(code=200, msg="账户权限开启成功。")

        # 执行删除操作
        elif api_status == "off":
            # 拼接语句进行删除
            delete_base_info_user_table_sql = """
                UPDATE 
                    db_center_rbac.base_info_user_table
                SET 
                    user_status = 1,
                    update_user = {},
                    update_time = '{}'
                WHERE
                    user_id = {}
                ;""".format(user_message['user_id'], get_datatime(), user_id)
            # 执行语句
            db.update(delete_base_info_user_table_sql)
            # 返回响应
            return create_response(code=200, msg="账户权限关闭成功。")

        # 返回异常
        else:
            return create_response(code=400, msg="请求参数传递错误。")
